function [PartProb,Npdf,Nobs,Prof1,Prof0,EN,OV,Prof0_C] = Full_Simulate(estparams,DP,A,R,TG,MON,snPass,rp)

muT         = estparams(1);
sigmaT      = estparams(2);
rho         = estparams(3);
sigmaF0     = estparams(4);
sigmaF1     = estparams(5);
muF         = estparams(6);
ftreat      = estparams(7);
fmoni       = estparams(8);
fshift      = estparams(9);

obs    =  length(DP);

PartProb = zeros(obs,1);
Npdf     = zeros(obs,51);

mu_F_P  = muF + (ftreat .* TG);
mu_F_TS = muF + (fmoni .* MON) + fshift;

Nobs     = zeros(obs,1);
Prof1    = zeros(obs,1);
Prof0    = zeros(obs,1);
EN       = zeros(obs,1);
OV       = zeros(obs,1);
Prof0_C  = zeros(obs,1);

for i=1:obs
    
    [PartProb(i),Npdf(i,:),obsNv,maxP_TS,EProf,EN(i),Prof] = Full_Profit(muT,sigmaT,sigmaF0,sigmaF1,rho,mu_F_P(i),mu_F_TS(i),A(i),R(i),TG(i),rp,snPass,i);

    Prof1(i,1) = maxP_TS; % This is max realized profit conditional on participation, not discounted.
    Nobs(i,1)  = obsNv;
    Prof0(i,1) = EProf;   % Expected profit, ex ante
    
    %---------------------------------------------------;
    % 2.5.1 Option Value                                ;
    %---------------------------------------------------;
    
    EProf_2            = mean(Prof,2);
    [maxEP,argmaxEP]   = max(EProf_2,[],3);

    Prof0_C(i,1) = max(maxEP,0);
    OV(i,1) = EProf-Prof0_C(i,1);

end